Efficient Bottom-Up Execution of Logic Programs Using Abstract Interpretation
نویسندگان
چکیده
B o t t o m u p evaluation of logic programs has recently at tracted much attention in the logic programming and the deductive database field. It is complete [7], and if the number of all possible facts is finite, it is guaranteed to terminate, while t op -down evaluation may not. B o t t o m u p evaluation, however, may be inefficient since it may generate many facts irrelevant to the query. To overcome this drawback, a number of optimization strategies have been proposed on seminaive b o t t o m u p evaluation [1,6,7,9]. Filtering is a query optimization strategy based on the seminaive evaluation on system graphs, which evaluates a query in terms of the b o t t o m u p data flow on system graphs. Filtering methods try to restrict data flow on system graphs as much as possible by means of filters, which are selections attached on arcs of system graphs [3,6,7]. Static filtering restricts data flow using static filters which are computed at compile-time by propagating dataindependent bindings. Dynamic filtering uses dynamic filters which are computed by propagating "actual data" generated during evaluation [6]. In this paper, we propose a new filter called abstract fil ter which is computed at compile time using the result of a two-phase abstract interpretation. The two-phase abstract interpretation consists of a b o t t o m u p phase followed by a t op -down one, and it provides an approximation of (possibly nonground) success pat terns relevant to a given query. The b o t t o m u p phase extends the b o t t o m u p abstract interpretation in [2] following the f ramework in [8]. A two-phase abstract interpretation is not a new idea in this area even though it has not been published in our form. The abstract filter prevents facts not in that approximation from being passed in the evaluation of system graphs. From a theoretical point of view, the abstract filter is shown to be at least as powerful as the static filter under some assumption. The next section gives preliminaries. Section 3 describe filtering on system graphs. Section 4 describes abstract interpretation. In Section 5, the abstract filter is computed. Section 6 concludes the paper.
منابع مشابه
Improving Execution Models of Logic Programs by Two-phase Abstract Interpretation
interpretation of a program approximates its standard semantics by fixpoint execution over an abstract domain rather than a possibly infinite concrete domain [1]. An abstract domain is typically a lattice which is finite or does not allow infinite ascending chains even if it is infinite. Abstract interpretation provides a safe and finite approximation of some runtime behavior of the program. Fo...
متن کاملMore Precise Yet Efficient Type Inference for Logic Programs
Type analyses of logic programs which aim at inferring the types of the program being analyzed are presented in a unified abstract interpretation-based framework. This covers most classical abstract interpretation-based type analyzers for logic programs, built on either top-down or bottom-up interpretation of the program. In this setting, we discuss the widening operator, arguably a crucial one...
متن کاملAnalyzing Logic Programs Using \ Prop " -
This paper illustrates the role of a class of \prop"-ositional logic programs in the analysis of complex properties of logic programs. Analyses are performed by abstracting Prolog programs to corresponding \prop"-ositional logic programs which approximate the original programs and have nite meanings. We focus on a groundness analysis which is equivalent to that obtained by abstract interpretati...
متن کاملGoal Dependent vs. Goal Independent Analysis of Logic Programs
Abs t r ac t . Goal independent analysis of logic programs is commonly discussed in the context of the bottom-up approach. However, while the literature is rich in descriptions of top-down analysers and their application, practical experience with bottom-up analysis is still in a preliminary stage. Moreover, the practical use of existing top-down frameworks for goal independent analysis has not...
متن کاملAbstract Interpretation of Logic Programs using Magic Transformations
Interpretation of Logic Programs Using Magic Transformations Saumya Debray Department of Computer Science, University of Arizona-Tucson, AZ 85721, U.S.A. Raghu Ramakrishnan Department of Computer Sciences, University of Wisconsin-Madison, WI 53706, U.S.A. Abstract In data ow analysis of logic programs, information must be propagated according to the control strategy of the language under consid...
متن کاملSemantics - Based Analysis and Transformation of Logic Programs ( Revised Report ) Harald Søndergaard
Dataflow analysis is an essential component of many programming tools. One use of dataflow information is to identify errors in a program, as done by program “debuggers” and type checkers. Another is in compilers and other program transformers, where the analysis may guide various optimisations. The correctness of a programming tool’s dataflow analysis component is usually of paramount importan...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Inf. Process. Lett.
دوره 47 شماره
صفحات -
تاریخ انتشار 1993